FILTER দিয়ে Data Filtering গাইড ও নোট

Big Data and Analytics - অ্যাপাচি পিগ (Apache Pig) - Relational Operators এর ব্যবহার
352

অ্যাপাচি পিগ (Apache Pig) একটি উচ্চ স্তরের ডেটা প্রসেসিং ভাষা যা হাডুপ (Hadoop) ক্লাস্টারে বিশাল পরিমাণ ডেটা প্রসেস করতে ব্যবহৃত হয়। ডেটা ফিল্টারিং হল একটি গুরুত্বপূর্ণ পদক্ষেপ, যা মূলত নির্দিষ্ট শর্ত অনুযায়ী ডেটা নির্বাচন করতে ব্যবহৃত হয়। FILTER কমান্ডের মাধ্যমে পিগে ডেটা ফিল্টার করা হয়। এটি একটি অত্যন্ত শক্তিশালী ফিচার, যা ডেটাকে একটি নির্দিষ্ট শর্তের ভিত্তিতে ফিল্টার করে এবং শুধুমাত্র প্রয়োজনীয় ডেটা রাখে।


FILTER কমান্ডের পরিচিতি

FILTER কমান্ড পিগে ডেটা ফিল্টার করার জন্য ব্যবহৃত হয়, এবং এটি এমন একটি শর্তের ভিত্তিতে কাজ করে যা ডেটার ওপর প্রয়োগ করা হয়। এই শর্তটি একটি এক্সপ্রেশন হতে পারে, যেমন কোনো নির্দিষ্ট কলামের মানের সাথে তুলনা করা, বা কোনো ফাংশনের মাধ্যমে চেক করা। FILTER কমান্ড একটি নতুন বাগ-এ নতুন ডেটা সেট প্রদান করে যা শর্তের সাথে মিলছে।

FILTER কমান্ডের সাধারণ সিনট্যাক্স

filtered_data = FILTER input_data BY condition;

এখানে,

  • input_data: এটি হল সেই ডেটাসেট যা থেকে ফিল্টার করা হবে।
  • condition: এটি হল শর্ত বা এক্সপ্রেশন যা ডেটার ওপর প্রয়োগ করা হবে।

FILTER দিয়ে Data Filtering এর উদাহরণ

উদাহরণ ১: নির্দিষ্ট বয়সের বেশি ব্যক্তি নির্বাচন করা

ধরা যাক, একটি ডেটাসেটে নাম এবং বয়সের তথ্য রয়েছে এবং আমরা সেই সব ব্যক্তিদের নির্বাচন করতে চাই যারা ৩০ বছর বয়সী বা তার বেশি। এই শর্তের ভিত্তিতে FILTER কমান্ড ব্যবহার করা হবে।

data = LOAD 'input_data.txt' USING PigStorage(',') AS (name:chararray, age:int);

-- Filter out records where age is greater than or equal to 30
filtered_data = FILTER data BY age >= 30;

-- Store the results in an output file
STORE filtered_data INTO 'output_data.txt' USING PigStorage(',');

এখানে, FILTER কমান্ড age >= 30 শর্তের ভিত্তিতে data থেকে শুধুমাত্র সেই রেকর্ডগুলো নির্বাচিত করবে যাদের বয়স ৩০ বা তার বেশি।

উদাহরণ ২: নামের মধ্যে একটি নির্দিষ্ট শব্দ থাকা ব্যক্তির তালিকা নির্বাচন

এখন, যদি আমরা একটি ডেটাসেট থেকে শুধুমাত্র তাদের নাম বের করতে চাই যারা "John" শব্দটি অন্তর্ভুক্ত করেছে, তাহলে নিম্নলিখিত কোড ব্যবহার করা হবে:

data = LOAD 'input_data.txt' USING PigStorage(',') AS (name:chararray, age:int);

-- Filter records where the name contains 'John'
filtered_data = FILTER data BY name MATCHES '.*John.*';

-- Store the results in an output file
STORE filtered_data INTO 'output_data.txt' USING PigStorage(',');

এখানে, MATCHES অপারেটর ব্যবহার করা হয়েছে যেটি একটি প্যাটার্ন ম্যাচিং ফিচার, এবং এটি name কলামে "John" শব্দটি থাকা রেকর্ডগুলো নির্বাচন করবে।

উদাহরণ ৩: নেগেটিভ কন্ডিশন ব্যবহার করা

ধরা যাক, আমরা এমন সব রেকর্ড ফিল্টার করতে চাই যেখানে age ১৮ বছরের নিচে। এই ক্ষেত্রে, NOT অপারেটর ব্যবহার করা হবে।

data = LOAD 'input_data.txt' USING PigStorage(',') AS (name:chararray, age:int);

-- Filter records where age is less than 18
filtered_data = FILTER data BY NOT (age >= 18);

-- Store the results in an output file
STORE filtered_data INTO 'output_data.txt' USING PigStorage(',');

এখানে, NOT (age >= 18) শর্তটি ব্যবহার করা হয়েছে, যা ১৮ বছরের নিচের ব্যক্তিদের নির্বাচন করবে।

উদাহরণ ৪: একাধিক শর্ত দিয়ে ফিল্টার করা

একাধিক শর্ত দিয়ে ডেটা ফিল্টার করতে একাধিক শর্ত AND বা OR অপারেটর ব্যবহার করা যেতে পারে। নিচে AND অপারেটর দিয়ে বয়স ৩০ বা তার বেশি এবং নামের প্রথম অক্ষর "A" হওয়া ব্যক্তির তথ্য ফিল্টার করা হয়েছে:

data = LOAD 'input_data.txt' USING PigStorage(',') AS (name:chararray, age:int);

-- Filter records where age is greater than or equal to 30 AND name starts with 'A'
filtered_data = FILTER data BY age >= 30 AND name MATCHES 'A.*';

-- Store the results in an output file
STORE filtered_data INTO 'output_data.txt' USING PigStorage(',');

এখানে, AND অপারেটর দিয়ে দুটি শর্ত একসাথে প্রয়োগ করা হয়েছে: বয়স ৩০ বা তার বেশি এবং নামের প্রথম অক্ষর "A"।

উদাহরণ ৫: শর্তে NULL চেক করা

কিছু ক্ষেত্রেই ডেটাতে NULL মান থাকতে পারে। যদি এমন রেকর্ডগুলো ফিল্টার করতে চাই যেখানে কোনো নির্দিষ্ট কলামের মান NULL না, তাহলে IS NOT NULL অপারেটর ব্যবহার করা হয়:

data = LOAD 'input_data.txt' USING PigStorage(',') AS (name:chararray, age:int);

-- Filter records where age is not NULL
filtered_data = FILTER data BY age IS NOT NULL;

-- Store the results in an output file
STORE filtered_data INTO 'output_data.txt' USING PigStorage(',');

এখানে, age IS NOT NULL শর্তটি প্রয়োগ করা হয়েছে, যার মাধ্যমে age কলামে NULL না থাকা রেকর্ডগুলো নির্বাচন করা হবে।


সারাংশ

FILTER কমান্ড পিগে ডেটা ফিল্টার করার জন্য একটি অত্যন্ত শক্তিশালী টুল। এটি ডেটার মধ্যে থেকে নির্দিষ্ট শর্ত পূর্ণ করা রেকর্ডগুলো নির্বাচন করতে ব্যবহৃত হয়। আপনি বিভিন্ন শর্ত, এক্সপ্রেশন, এবং অপারেটরের মাধ্যমে ডেটা ফিল্টার করতে পারেন, যেমন:

  • age >= 30
  • name MATCHES '.*John.*'
  • NOT (age >= 18)
  • age IS NOT NULL

ফিল্টারিং ডেটার প্রয়োজনীয় অংশ বের করতে এবং ডেটাকে আরও সঠিকভাবে প্রসেস করতে সাহায্য করে, বিশেষ করে বিশাল পরিমাণ ডেটার ক্ষেত্রে।

Content added By
Promotion

Are you sure to start over?

Loading...